--正常情况下只有延迟补偿可以触发这里
AddModRPCHandler("doro", "doro_attack_movement", function(player, target)
    if target and target.replica.combat ~= nil and target.replica.combat:CanBeAttacked(player) then
        local hand = player.components.inventory:GetEquippedItem(EQUIPSLOTS.HANDS)
        if hand and hand:HasTag("doro_weapon_shadow")
            and hand.components.rechargeable:IsCharged() then
            hand.components.rechargeable:Discharge(5)
            local pt = target:GetPosition()
            local offset = FindWalkableOffset(pt, math.random() * PI2, math.random(2, 3), 12, nil, nil, nil, nil,
                true)
            if offset ~= nil then
                pt.x = pt.x + offset.x
                pt.z = pt.z + offset.z
            end
            if TheWorld.Map:IsAboveGroundAtPoint(pt.x, pt.y, pt.z) or TheWorld.Map:GetPlatformAtPoint(pt.x, pt.z) then
                player.Transform:SetPosition(pt.x, pt.y, pt.z)
            end
            --缴械攻击目标1秒
            local tcombat = target.components.combat
            if tcombat then
                local nowcooldown = tcombat:GetCooldown()
                local newcooldown = nowcooldown + 1 + 8 * FRAMES + 1 -- ?
                tcombat:OverrideCooldown(newcooldown)
            end
            --延迟补偿的缘故 这里必须手动让玩家打
            player.components.locomotor:PushAction(BufferedAction(player, target, ACTIONS.ATTACK))
        end
    end
end)
